<?php
// 验证码函数

// function vcode(){
// 	//开启session
// 	session_start();

// 	// 1.创建画布资源
// 	$img=imagecreatetruecolor(214,50);

// 	// 2.准备颜色
// 	$black=imagecolorallocate($img,0,0,0);
// 	$white=imagecolorallocate($img,255,255,255);

// 	// 3.在画布上画图像或文字
// 	imagefill($img,0,0,$black);

// 	$arr=array_merge(range(0,9),range(a,z),range(A,Z));
// 	shuffle($arr);
// 	$rand=join('',array_slice($arr,0,4));

// 	//把四位随机数放入session中，供其他页面使用
// 	$_SESSION['vcode']=$rand;

// 	imagettftext($img,30,0,50,40,$white,'./msyh.ttf',$rand);

// 	for($i=0;$i<30;$i++){
// 		imageellipse($img,mt_rand(0,150),mt_rand(0,50),mt_rand(0,150),mt_rand(0,50),$white);
// 	}
// 	// 4.输出最终图像或保存最终图像
// 	header('content-type:image/jpeg');
// 	imagejpeg($img);

// 	// 5.释放画布资源
// 	imagedestroy($img);
// }


//图片缩放函数
function thumb($simg,$dw,$dh){
	//原图大小
	$arr=getimagesize($simg);
	$sw=$arr[0];	    	
	$sh=$arr[1];	    	
	$st=$arr[2];	    	
	$sm=$arr['mime'];
	switch($st){
		case 1:
			$imagecreate="imagecreatefromgif";
			$imageout="imagegif";
			break;

		case 2:
			$imagecreate="imagecreatefromjpeg";
			$imageout="imagejpeg";
			break;

		case 3:
			$imagecreate="imagecreatefrompng";
			$imageout="imagepng";
			break;
	}
	//原图图片资源
	$simgr=$imagecreate($simg);

	//等比例计算
	if($sw/$dw>$sh/$dh){
		$b=$sw/$dw;
	}else{
		$b=$sh/$dh;
	}
	$dw2=floor($sw/$b);
	$dh2=floor($sh/$b);
	//目标图片资源	
	$dimgr=imagecreatetruecolor($dw2,$dh2);
	//开始缩放
	imagecopyresampled($dimgr,$simgr,0,0,0,0,$dw2,$dh2,$sw,$sh);
	//保存到与原图同一个目录下
	$dir=dirname($simg);
	$file=basename($simg);
	$save=$dir.'/'.'thumb_'.$file;
	$imageout($dimgr,$save);
}


/**
*生成随机数
*@param int $num 截取字符串的个数
*return string 返回截取的字符串
*/
function randStr($num=6){
	$str=str_shuffle('abcedfghjkmnpqrstuvwxyzABCEDFGHJKMNPQRSTUVWXYZ23456789');
	return substr($str, 0,$num);
}


/**
*生成验证码
*/
function vcode(){
	session_start();
	//生成80*50的画布
	$pic=imagecreatetruecolor(80, 28);

	//创建颜色
	$white=imagecolorallocate($pic, 255, 255, 255);
	$grey=imagecolorallocate($pic, 127, 127, 127);
	$blue=imagecolorallocate($pic, 0, 0, 255);
	//填充背景色
	imagefill($pic, 0, 0, $white);

	$rand=randStr(6);
	$_SESSION['vcode']=$rand;
	// echo $_SESSION['vcode'];
	// echo "<br />";
	// echo $rand;
	// exit;
	//在画板上写字
	imagestring($pic, 3, 15,8, $rand, $blue);

	//输出到浏览器
	header('Content-type:image/png');

	//生成图片
	imagepng($pic);

	//销毁画板
	imagedestroy($pic);
}

/**
*生成缩略图
*@param string $oimg /uploads/...
*@param int $sw 生成的缩略图的宽
*@param int $sh 生成的缩略图的高
*return string 生成缩略图的路径
*/
function makeThumb($oimg,$sw=200,$sh=200){
	//创建小画布,返回图片资源
	$spic=imagecreatetruecolor($sw, $sh);

	//创建白色
	$white=imagecolorallocate($spic, 255, 255, 255);

	//填充背景色
	imagefill($spic,0,0,$white);

	//获取大图信息
	list($bw,$bh,$btype)=getimagesize($oimg);	//$btype是数字
	//1 = GIF，2 = JPG，3 = PNG，4 = SWF，5 = PSD，6 = BMP，
	//7 = TIFF(intel byte order)，8 = TIFF(motorola byte order)，9 = JPC，10 = JP2，
	//11 = JPX，12 = JB2，13 = SWC，14 = IFF，15 = WBMP，16 = XBM
	
	//定义图片类型
	$map=array(
		1=>'imagecreatefromgif',
		2=>'imagecreatefromjpeg',
		3=>'imagecreatefrompng',
		15=>'imagecreatefromwbmp'
	);

	//缩略图存放的路径名称
	$dir=dirname($oimg);
 	$file=basename($oimg);
 	$save=$dir.'/'.'thumb_'.$file;

	//获取大图的图片资源
	$opic=$map[$btype]($oimg);

	//计算缩略比
	$rate=min($sw/$bw,$sh/$bh);
	$zw=$rate*$sw;	//最终返回的缩略图的宽
	$zh=$rate*$sh;	//最终返回的缩略图的高


	//进行缩放
	imagecopyresampled($spic, $opic, ($sw-$zw)/2, ($sh-$zh)/2, 0, 0, $zw, $zh, $bw, $bh);

	//生成缩略图
	imagepng($spic,$save);

	//销毁画布(关闭画板)
	imagedestroy($spic);
	imagedestroy($opic);

	// return $simg;
}

/**
*创建文件上传的目录
*return string $path 上传文件的相对路径
*/
function createDir(){
	$path='/uploads/';
	$fpath=ROOT.$path;
	if(is_dir($fpath) || mkdir($fpath,0777,true)){
		// echo $path;
		return $path;
	}
	else{
		return false;
	}
}
// createDir();
?>